package com.bcbim.api_model.sys.init.code;

import com.bcbim.common.sys.Constant;
import com.google.common.collect.Maps;

import java.lang.reflect.Field;
import java.util.Map;

/**
 * @Description: 系统内码值映射
 * @Author haoshuai
 * @Date 2020/8/26
 * @Version V1.0
 **/
public class CodeMap {

    //存放 码值类型 与 对应静态常量属性名 映射关系集合
    public static Map<String, String> CODE_MAPPING = Maps.newHashMap();

    static {
        Field[] fields = CodeMap.class.getDeclaredFields();
        //遍历类属性, 获取码值类型 与 对应静态常量属性名 放入映射集合
        for (Field field : fields) {
            if (field.getType().toString().equals(Constant.CLASS_STRING)) {
                //获取属性权限
                boolean accessFlag = field.isAccessible();
                //打开访问权限
                field.setAccessible(true);
                //码值类型 与 对应静态常量属性名 放入映射集合
                try {
                    CODE_MAPPING.put((String) field.get(null), field.getName());
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                //恢复访问权限
                field.setAccessible(accessFlag);
            }
        }
    }

    //文件状态
    private static final String FILE_STATUS_TYPE = "fileStatusType";
    public static Map<String, String> FILE_STATUS_MAP = Maps.newHashMap();

}
